"use strict";

const { Service } = require("egg");

class userService extends Service {
  // 获取全部用户
  async getAll() {
    try {
      const { app,ctx } = this;
      const res = await app.mysql.select("user");
      return { data: res, suc: true, msg: "查询全部用户成功" };
    } catch (error) {
      ctx.logger.error(err);
      return { suc: false, msg: error };
    }
  }
  // 添加用户，可用于注册
  async add(obj) {
    try {
      const { app,ctx } = this;
      let query = await app.mysql.get("user", { phone: obj.phone });
      if (query != null) {
        ctx.logger.error(`手机号${obj.phone}已被注册`);
        return { suc: false, msg: "该手机号已被注册！" };
      }
      if (obj.head === undefined || obj.head === "" || obj.head == null) {
        obj.head = "/public/image/user_head.png";
      }
      if (
        obj.signature === undefined ||
        obj.signature === "" ||
        obj.head === signature
      ) {
        obj.signature = "这个人还没有签名哦~";
      }
      const res = await app.mysql.insert("user", obj);
      ctx.logger.info(`创建用户${res.id}`);
      return { data: res, suc: true, msg: "创建用户成功" };
    } catch (error) {
      ctx.logger.error(err);
      return { suc: false, msg: error };
    }
  }
  // 删除用户（通过id）
  async del(id) {
    try {
      const { app,ctx } = this;
      const res = await app.mysql.delete("user", id);
      return { data: res, suc: true, msg: "删除用户成功" };
    } catch (error) {
      ctx.logger.error(err);
      return { suc: false, msg: error };
    }
  }
  // 修改用户信息
  async update(obj) {
    try {
      const { app } = this;
      await app.mysql.update("user", obj);
      app.logger.info(`用户${obj.id}修改了个人信息`);
      return { suc: true, msg: "修改用户成功" };
    } catch (error) {
      app.logger.error(error);
      return { suc: false, msg: error };
    }
  }
  // 通过给定的对象查询某个用户，可用于登录
  async getOne(obj) {
    try {
      const { app,ctx } = this;
      let res = await app.mysql.get("user", obj);
      if (res == null) {
        return { suc: false, msg: "请求成功，但没有找到该对象", data: res };
      }
      ctx.logger.info(`查询用户${obj.id}`);
      return { data: res, suc: true, msg: "查询一个用户成功" };
    } catch (error) {
      ctx.logger.error(err);
      return { suc: false, msg: "请求出现错误" };
    }
  }
}
module.exports = userService;
